/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package chatservidordistribudios;

import java.io.*;
import java.net.*;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author Kleyvert
 */
public class ServidorHilo implements Runnable
{
    private Servidor servidor;
    private Socket socket;          //SOCKET que se conecta a nuestro Cliente.
    private String nombreUsuario;
    // Constructor:

    public ServidorHilo(Servidor servidor, Socket socket)
    {
        this.servidor = servidor;
        this.socket = socket;
        
    }

    public void run()
    {
        try 
        {          
            // Ciclo de ESPERA PARA "LECTURA DE MENSAJES":
            while (true)
            {
                // Leer el "siguiente" mensaje que envio el CLIENTE:              
                int identificador = this.servidor.getMsnEntrada().readInt();
                String mensaje = this.servidor.getMsnEntrada().readUTF();
                // Verificamos que dependiendo del "identificador" que lee de cliente
                // si el "identificador" es igual a 1 es cliente
                if ( identificador == 1 ){
                   this.nombreUsuario = mensaje;
                   this.servidor.EnviarMensaje(mensaje, identificador);
                }
                // si el "identificador" es igual a 2 es un mensaje particular
                 if ( identificador == 2)
                 {
                    mensaje = "<mensaje> - " + mensaje;
                    this.servidor.EnviarMensaje(mensaje, identificador);
                 }
                if (identificador == 3){
                    this.servidor.RemoverConexion(mensaje);
                 }
                 if (identificador == 4){
                    mensaje = "<Mensaje a Todos> - " + mensaje;
                    this.servidor.EnviarMensajeaTodos(mensaje,identificador);
                 }
                // Comprobacion por consola de que recibio el mensaje el servidor:
                  System.out.println("Enviando el mensaje del cliente: "+mensaje);
                  System.out.println("con el ID: "+identificador);
                 
            }//end while (true)
        }
        catch (EOFException ex)
        {

        }
        catch (IOException ex)
        {
            Logger.getLogger(ServidorHilo.class.getName()).log(Level.SEVERE, null, ex);
        }
        finally
        {
            try {
                this.socket.close();
            } catch (IOException ex) {
                Logger.getLogger(ServidorHilo.class.getName()).log(Level.SEVERE, null, ex);
            }
            
        }


    }//end run()



}